package Compilador2014;

public class Identificador implements Comparable {

	private String tipo;
	private String nombre;
	
	public Identificador (String tipo, String nombre) {
		this.tipo = tipo;
		this.nombre = nombre;
	}

	public Identificador(Token token, char tipo) {
		switch (tipo) {
		case 'c': this.tipo = "int"; break;
		case 'd': this.tipo = "string"; break;
		case 'e': this.tipo = "bool"; break;
		case 'f': this.tipo = "real"; break;
		default: this.tipo = ""; break;
		}
		this.nombre = token.getLexema();
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public String toString () {
		return tipo + " " + nombre;
	}
	
	public boolean equals (Object obj) {
		Identificador iden = (Identificador) obj;
		if (this.nombre.equals(iden.nombre))
			return true;
		return false;
	}

	@Override
	public int compareTo(Object obj) {
		Identificador iden = (Identificador) obj;
		return this.nombre.compareTo(iden.nombre);
	}
}
